package org.common.utils.config.handler;

import org.common.utils.config.ConfigInfo;
import org.common.utils.config.ConfigObject;
import org.common.utils.config.ConfigType;
import java.util.Map;

/**
 * @author zhouzhibing
 * @date 2025/7/29
 */
public abstract class AbstractConfigHandler {

    /**
     * 配置类型枚举
     */
    private final ConfigType configType;

    public AbstractConfigHandler(ConfigType configType) {
        this.configType = configType;
    }

    /**
     * 加载配置
     * @param configMap 配置列表
     * @param configInfo 配置信息
     */
    public boolean load(ConfigObject configObject , ConfigInfo configInfo , Map<String , String> configMap) {
        return loadImpl(configObject , configInfo, configMap);
    }

    /**
     * 加载配置实现
     * @param configMap 配置列表
     * @param configInfo 配置信息
     */
    protected abstract boolean loadImpl(ConfigObject configObject , ConfigInfo configInfo , Map<String , String> configMap);
}
